Methods, apparatuses, and computer program products for providing filtered services and content based on user context

ABSTRACT

An apparatus may include a processor configured to receive a request for a service or content from a first device. The processor may be further configured to receive a user&#39;s context information from a second device. The processor may additionally be configured to filter the requested service or content based at least in part upon the user&#39;s context information. The processor may be further configured to provide the filtered service or content to the first device. Corresponding methods and computer program products are also provided.

TECHNOLOGICAL FIELD

Embodiments of the present invention relate generally to mobile communication technology and, more particularly, relate to methods, apparatuses, and computer program products for automatically filtering requested services and content based on the context of the requesting user.

BACKGROUND

The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.

Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. One area in which there is a demand to further improve the ease of information transfer and convenience to users involves the transfer of information to a user depending on the context of the user. In this regard, the context of a user may include, for example, a user's location, i.e., at home or at work, other individuals in the user's presence, a time of day, or a date. When using a service or accessing content from a content provider, a user may wish that the service or content be filtered or otherwise tailored depending on his context. For example, when accessing photographs from a photograph hosting service, a user may wish to only be provided with candid photographs with friends and family when accessing photographs from his home, but may wish to only be provided with work-related photographs when accessing photographs from his office. In this regard, content or services accessed by a user may contain sensitive data or other information that a user may not wish to be revealed depending on his context. Moreover, data or information that is sensitive in one context may not be sensitive in another context.

Some existing technologies may allow a user to configure content filtering based upon the access device used, such as through the use of web browser cookies. However these technologies do not allow for automatic context-based filtering based on contexts other than user access device. Moreover, with the increasing prevalence of laptops and other mobile computing devices these technologies do not account for situations in which mobile computing devices are used by a user in multiple locations for which it may be desirable to have filtering criteria for each location of use. Additionally, some existing devices may monitor their own location to provide for context-based filtering of content or services viewed on the device. However, again these technologies do not provide any aid to a user who wishes to access content or services on another device.

Accordingly, it may be advantageous to provide users with a system for automatically monitoring user context information and filtering content or services requested by the user on any computing device based upon context filtering criteria.

BRIEF SUMMARY

A method, apparatus, and computer program product are therefore provided to enable automatically filtering requested services or content depending on the context of the requesting user. In particular, a method, apparatus, and computer program product are provided to enable, for example, a user of any first device to request delivery of services or content to the first device from a remote device. The requested service or content may then be automatically filtered according to filtering criteria based upon the user's context, which is monitored and provided by a second device associated with the user, and subsequently provided to the first device. Accordingly, user experience may be enhanced by enabling a user to define preferences for the delivery of services and content based upon the context of the user, which provide for the automatic filtering of provided services and content regardless of the device which the user uses to access the services and content.

In one exemplary embodiment, a method is provided which may include receiving a request for a service or content from a first device and receiving a user's context information from a second device. The method may further include filtering the requested service or content based at least in part upon the user's context information. The method may additionally include providing the filtered service or content to the first device.

In another exemplary embodiment, a computer program product is provided. The computer program product includes at least one computer-readable storage medium having computer-readable program code portions stored therein. The computer-readable program code portions include first, second, third, and fourth executable portions. The first executable portion is for receiving a request for a service or content from a first device. The second executable portion is for receiving a user's context information from a second device. The third executable portion is for filtering the requested service or content based at least in part upon the user's context information. The fourth executable portion is for providing the filtered service or content to the first device.

In another exemplary embodiment, an apparatus is provided, which may include a processor. The processor may be configured to receive a request for a service or content from a first device and to receive a user's context information from a second device. The processor may be further configured to filter the requested service or content based at least in part upon the user's context information. The processor may additionally be configured to provide the filtered service or content to the first device.

In another exemplary embodiment, an apparatus is provided. The apparatus may include means for receiving a request for a service or content from a first device. The apparatus may further include means for receiving a user's context information from a second device. The apparatus may additionally include means for filtering the requested service or content based at least in part upon the user's context information. The apparatus may also include means for providing the filtered service or content to the first device.

Embodiments of the invention may therefore provide a method, apparatus, and computer program product to enhance user experience related to accessing content or services provided by remote devices. As a result, for example, users may benefit from receiving filtered or otherwise tailored content or services based upon their current context regardless of the device used to access the services or content.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:

FIG. 1 is a schematic block diagram of a mobile terminal according to an exemplary embodiment of the present invention;

FIG. 2 is a schematic block diagram of a wireless communications system according to an exemplary embodiment of the present invention;

FIG. 3 illustrates a block diagram of a system for providing filtered services or content based on user context according to an exemplary embodiment of the present invention;

FIG. 4 is a flowchart according to an exemplary method for receiving a user registration request and context-based filtering criteria according to an exemplary embodiment of the present invention; and

FIG. 5 is a flow chart according to an exemplary method for providing filtered services or content based on user context according to an exemplary embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout.

FIG. 1 illustrates a block diagram of a mobile terminal 10 that may benefit from the present invention. It should be understood, however, that the mobile terminal illustrated and hereinafter described is merely illustrative of one type of electronic device that may benefit from embodiments of the present invention and, therefore, should not be taken to limit the scope of the present invention. While several embodiments of the electronic device are illustrated and will be hereinafter described for purposes of example, other types of electronic devices, such as mobile telephones, mobile communication devices, portable digital assistants (PDAs), pagers, mobile computers, laptop computers, desktop computers, gaming devices, audio/video players, digital still/video cameras, positioning devices (such as a Global Positioning System (GPS) device), televisions, or any combination of the aforementioned, and other types of electronic systems, may employ embodiments of the present invention.

As shown, the mobile terminal 10 may include one or more antenna 12 in communication with one or more transmitter 14 and receiver 16 combinations, only one of which is shown in the figure. The mobile terminal may also include a controller 20 or other processor that provides signals to and receives signals from the transmitter and receiver, respectively. These signals may include signaling information in accordance with an air interface standard of an applicable cellular system, and/or any number of different wireless networking techniques, comprising but not limited to Wireless-Fidelity (Wi-Fi), wireless LAN (WLAN) techniques such as IEEE 802.11, Ultra Wide Band (UWB), Bluetooth™, and/or the like. In addition, these signals may include speech data, user generated data, user requested data, and/or the like. In this regard, the mobile terminal may be capable of operating with one or more air interface standards, communication protocols, modulation types, access types, and/or the like. More particularly, the mobile terminal may be capable of operating in accordance with various mobile communication protocols, such as for example, first generation (1G), second generation (2G), 2.5G, third-generation (3G) communication protocols, fourth-generation (4G) communication protocols, and/or the like. For example, the mobile terminal may be capable of operating in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, the mobile terminal may be capable of operating in accordance with 2.5G wireless communication protocols GPRS, EDGE, or the like. Further, for example, the mobile terminal may be capable of operating in accordance with 3G wireless communication protocols such as a UMTS network employing WCDMA radio access technology. Some NAMPS, as well as TACS, mobile terminals may also benefit from embodiments of this invention, as should dual or higher mode phones (e.g., digital/analog or TDMA/CDMA/analog phones). Additionally, the mobile terminal 10 may be capable of operating according to Wireless Fidelity (Wi-Fi) protocols.

It is understood that the controller 20 may comprise the circuitry required for implementing audio and logic functions of the mobile terminal 10. For example, the controller 20 may be a digital signal processor device, a microprocessor device, an analog-to-digital converter, a digital-to-analog converter, and/or the like. Control and signal processing functions of the mobile terminal may be allocated between these devices according to their respective capabilities. The controller may additionally comprise an internal voice coder (VC) 20 a, an internal data modem (DM) 20 b, and/or the like. Further, the controller may comprise functionality to operate one or more software programs, which may be stored in memory. For example, the controller 20 may be capable of operating a connectivity program, such as a Web browser. The connectivity program may allow the mobile terminal 10 to transmit and receive Web content, such as location-based content, according to a protocol, such as Wireless Application Protocol (WAP), hypertext transfer protocol (HTTP), and/or the like. The mobile terminal 10 may be capable of using a Transmission Control Protocol/Internet Protocol (TCP/IP) to transmit and receive Web content across Internet 50.

The mobile terminal 10 may also comprise a user interface including a conventional earphone or speaker 24, a ringer 22, a microphone 26, a display 28, a user input interface, and/or the like, which may be coupled to the controller 20. Although not shown, the mobile terminal may comprise a battery for powering various circuits related to the mobile terminal, for example, a circuit to provide mechanical vibration as a detectable output. The user input interface may comprise devices allowing the mobile terminal to receive data, such as a keypad 30, a touch display (not shown), ajoystick (not shown), and/or other input device. In embodiments including a keypad, the keypad may comprise conventional numeric (0-9) and related keys (#, *), and/or other keys for operating the mobile terminal.

As shown in FIG. 1, the mobile terminal 10 may also include one or more means for sharing and/or obtaining data. For example, the mobile terminal may comprise a short-range radio frequency (RF) transceiver and/or interrogator 64 so data may be shared with and/or obtained from electronic devices in accordance with RF techniques. The mobile terminal may comprise other short-range transceivers, such as, for example an infrared (IR) transceiver 66, a Bluetooth™ (BT) transceiver 68 operating using Bluetooth™ brand wireless technology developed by the Bluetooth™ Special Interest Group, and/or the like. The Bluetooth transceiver 68 may be capable of operating according to Wibree™ radio standards. In this regard, the mobile terminal 10 and, in particular, the short-range transceiver may be capable of transmitting data to and/or receiving data from electronic devices within a proximity of the mobile terminal, such as within 10 meters, for example. Although not shown, the mobile terminal may be capable of transmitting and/or receiving data from electronic devices according to various wireless networking techniques, including Wireless Fidelity (Wi-Fi), WLAN techniques such as IEEE 802.11 techniques, Ultra Wide Band (UWB), and/or the like.

The mobile terminal 10 may comprise memory, such as a subscriber identity module (SIM) 38, a removable user identity module (R-UIM), and/or the like, which may store information elements related to a mobile subscriber. In addition to the SIM, the mobile terminal may comprise other removable and/or fixed memory. In this regard, the mobile terminal may comprise volatile memory 40, such as volatile Random Access Memory (RAM), which may comprise a cache area for temporary storage of data. The mobile terminal may comprise other non-volatile memory 42, which may be embedded and/or may be removable. The non-volatile memory may comprise an EEPROM, flash memory, and/or the like. The memories may store one or more software programs, instructions, pieces of information, data, and/or the like which may be used by the mobile terminal for performing functions of the mobile terminal. For example, the memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying the mobile terminal 10.

The mobile terminal 10 may further comprise a positioning sensor 36. The positioning sensor 36 may include, for example, a global positioning system (GPS) sensor, an assisted global positioning system (Assisted-GPS) sensor, etc. In one embodiment, however, the positioning sensor includes a pedometer or inertial sensor. Further, the positioning sensor may determine the location of the mobile terminal based upon signal triangulation or other mechanisms. The positioning sensor is capable of determining a location of the mobile terminal, such as latitude and longitude coordinates of the mobile terminal or a position relative to a reference point such as a destination or a start point. Information from the positioning sensor may be communicated to a memory of the mobile terminal or to another memory device to be stored as a position history or location information. Furthermore, the memory of the mobile terminal may store instructions for determining cell id information. In this regard, the memory may store an application program for execution by the controller 20, which determines an identity of the current cell, i.e., cell id identity or cell id information, with which the mobile terminal is in communication. In conjunction with the positioning sensor, the cell id information may be used to more accurately determine a location of the mobile terminal.

Referring now to FIG. 2, an illustration of one type of system that could support communications to and from an electronic device, such as the mobile terminal of FIG. 1, is provided by way of example, but not of limitation. As shown, one or more mobile terminals 10 may each include an antenna 12 for transmitting signals to and for receiving signals from a base site or base station (BS) 44. The base station 44 may be a part of one or more cellular or mobile networks each of which may comprise elements required to operate the network, such as a mobile switching center (MSC) 46. As well known to those skilled in the art, the mobile network may also be referred to as a Base Station/MSC/Interworking function (BMI). In operation, the MSC 46 may be capable of routing calls to and from the mobile terminal 10 when the mobile terminal 10 is making and receiving calls. The MSC 46 may also provide a connection to landline trunks when the mobile terminal 10 is involved in a call. In addition, the MSC 46 may be capable of controlling the forwarding of messages to and from the mobile terminal 10, and may also control the forwarding of messages for the mobile terminal 10 to and from a messaging center. It should be noted that although the MSC 46 is shown in the system of FIG. 2, the MSC 46 is merely an exemplary network device and the present invention is not limited to use in a network employing an MSC.

The MSC 46 may be coupled to a data network, such as a local area network (LAN), a metropolitan area network (MAN), and/or a wide area network (WAN). The MSC 46 may be directly coupled to the data network. In one embodiment, however, the MSC 46 may be coupled to a gateway (GTW) 48, and the GTW 48 may be coupled to a WAN, such as the Internet 50. In turn, devices such as processing elements (e.g., personal computers, server computers or the like) may be coupled to the mobile terminal 10 via the Internet 50. For example, as explained below, the processing elements may include one or more processing elements associated with a computing system 52 (two shown in FIG. 2), origin server 54 (one shown in FIG. 2) or the like, as described below.

As shown in FIG. 2, the BS 44 may also be coupled to a signaling GPRS (General Packet Radio Service) support node (SGSN) 56. As known to those skilled in the art, the SGSN 56 may be capable of performing functions similar to the MSC 46 for packet switched services. The SGSN 56, like the MSC 46, may be coupled to a data network, such as the Internet 50. The SGSN 56 may be directly coupled to the data network. Alternatively, the SGSN 56 may be coupled to a packet-switched core network, such as a GPRS core network 58. The packet-switched core network may then be coupled to another GTW 48, such as a GTW GPRS support node (GGSN) 60, and the GGSN 60 may be coupled to the Internet 50. In addition to the GGSN 60, the packet-switched core network may also be coupled to a GTW 48. Also, the GGSN 60 may be coupled to a messaging center. In this regard, the GGSN 60 and the SGSN 56, like the MSC 46, may be capable of controlling the forwarding of messages, such as MMS messages. The GGSN 60 and SGSN 56 may also be capable of controlling the forwarding of messages for the mobile terminal 10 to and from the messaging center.

In addition, by coupling the SGSN 56 to the GPRS core network 58 and the GGSN 60, devices such as a computing system 52 and/or origin server 54 may be coupled to the mobile terminal 10 via the Internet 50, SGSN 56 and GGSN 60. In this regard, devices such as the computing system 52 and/or origin server 54 may communicate with the mobile terminal 10 across the SGSN 56, GPRS core network 58 and the GGSN 60. By directly or indirectly connecting mobile terminals 10 and the other devices (e.g., computing system 52, origin server 54, etc.) to the Internet 50, the mobile terminals 10 may communicate with the other devices and with one another, such as according to the Hypertext Transfer Protocol (HTTP), to thereby carry out various functions of the mobile terminals 10.

Although not every element of every possible mobile network is shown in FIG. 2 and described herein, it should be appreciated that electronic devices, such as the mobile terminal 10, may be coupled to one or more of any of a number of different networks through the BS 44. In this regard, the network(s) may be capable of supporting communication in accordance with any one or more of a number of first-generation (1G), second-generation (2G), 2.5G, third-generation (3G), fourth generation (4G) and/or future mobile communication protocols or the like. For example, one or more of the network(s) may be capable of supporting communication in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, one or more of the network(s) may be capable of supporting communication in accordance with 2.5G wireless communication protocols GPRS, Enhanced Data GSM Environment (EDGE), or the like. Further, for example, one or more of the network(s) may be capable of supporting communication in accordance with 3G wireless communication protocols such as Universal Mobile Telephone System (UMTS) network employing Wideband Code Division Multiple Access (WCDMA) radio access technology. Some narrow-band AMPS (NAMPS), as well as TACS, network(s) may also benefit from embodiments of the present invention, as should dual or higher mode mobile terminals (e.g., digital/analog or TDMA/CDMA/analog phones).

As depicted in FIG. 2, the mobile terminal 10 may further be coupled to one or more wireless access points (APs) 62. The APs 62 may comprise access points configured to communicate with the mobile terminal 10 in accordance with techniques such as, for example, radio frequency (RF), Bluetooth™ (BT), infrared (IrDA) or any of a number of different wireless networking techniques, including wireless LAN (WLAN) techniques such as IEEE 802.11 (e.g., 802.11a, 802.11b, 802.11g, 802.11n, etc.), Wibree™ techniques, WiMAX techniques such as IEEE 802.16, Wireless-Fidelity (Wi-Fi) techniques and/or ultra wideband (UWB) techniques such as IEEE 802.15 or the like. The APs 62 may be coupled to the Internet 50. Like with the MSC 46, the APs 62 may be directly coupled to the Internet 50. In one embodiment, however, the APs 62 may be indirectly coupled to the Internet 50 via the GTW 48. Furthermore, in one embodiment, the BS 44 may be considered as another AP 62. As will be appreciated, by directly or indirectly connecting the mobile terminals 10 and the computing system 52, the origin server 54, and/or any of a number of other devices, to the Internet 50, the mobile terminals 10 may communicate with one another, the computing system, etc., to thereby carry out various functions of the mobile terminals 10, such as to transmit data, content, service or the like to, and/or receive content, data, service, or the like from, the computing system 52. As used herein, the terms “data,” “content,” “information”, “service” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of the present invention.

Although not shown in FIG. 2, in addition to or in lieu of coupling the mobile terminal 10 to computing systems 52 and/or origin server 54 across the Internet 50, the mobile terminal 10, computing system 52 and origin server 54 may be coupled to one another and communicate in accordance with, for example, RF, BT, IrDA or any of a number of different wireline or wireless communication techniques, including LAN, WLAN, WiMAX, Wireless Fidelity (Wi-Fi), Wibree™ and/or UWB techniques. One or more of the computing systems 52 may additionally, or alternatively, include a removable memory capable of storing content, which can thereafter be transferred to the mobile terminal 10. Further, the mobile terminal 10 may be coupled to one or more electronic devices, such as printers, digital projectors and/or other multimedia capturing, producing and/or storing devices (e.g., other terminals). Like with the computing systems 52, the mobile terminal 10 may be configured to communicate with the portable electronic devices in accordance with techniques such as, for example, RF, BT, IrDA or any of a number of different wireline or wireless communication techniques, including USB, LAN, Wibree™, Wi-Fi, WLAN, WiMAX and/or UWB techniques. In this regard, the mobile terminal 10 may be capable of communicating with other devices via short-range communication techniques. For instance, the mobile terminal 10 may be in wireless short-range communication with one or more devices 51 that are equipped with a short-range communication transceiver 80. The electronic devices 51 may comprise any of a number of different devices and transponders capable of transmitting and/or receiving data in accordance with any of a number of different short-range communication techniques including but not limited to Bluetooth™, RFID, IR, WLAN, Infrared Data Association (IrDA) or the like. The electronic device 51 may include any of a number of different mobile or stationary devices, including other mobile terminals, mobile telephones, mobile communication devices, wireless accessories, appliances, portable digital assistants (PDAs), pagers, laptop computers, mobile computers, desktop computers, gaming devices, audio/video players, digital still/video cameras, positioning devices (such as a Global Positioning System (GPS) device), televisions, motion sensors, light switches, or any combination of the aforementioned, and other types of electronic devices.

FIG. 3 illustrates a block diagram of a system 300 for providing filtered services and content according to an exemplary embodiment of the present invention. As used herein, “exemplary” merely means an example and as such represents one example embodiment for the invention and should not be construed to narrow the scope or spirit of the invention in anyway. It will be appreciated that the scope of the invention encompasses many potential embodiments in addition to those illustrated and described herein. The system 300 will be described, for purposes of example, in connection with the mobile terminal 10 of FIG. 1 and the system of FIG. 2. However, it should be noted that the system of FIG. 3, may also be employed in connection with a variety of other devices, both mobile and fixed, and therefore, embodiments of the present invention should not be limited to application on devices such as the mobile terminal 10 of FIG. 1. Further, the system of FIG. 3 may employ systems for communication other than that illustrated in FIG. 2. It should also be noted, that while FIG. 3 illustrates one example of a configuration of a system for automatically finding configuration settings for services, numerous other configurations may also be used to implement embodiments of the present invention.

Referring now to FIG. 3, the system 300 may include a mobile device 302, a presence server 310, a web portal server 318, a web service provider 328, and a user's web terminal (“web terminal”) 332. In some embodiments, the mobile device 302 may be a mobile terminal 10. However, the mobile device 302 may be any computing device capable of monitoring a user's context as described herein. In some embodiments, the presence server 310, web portal server 318, and web service provider 328 may be embodied as a computing system 52 or origin server 54 of the system 47 of FIG. 2.

Although referred to herein as a “server,” the presence server 310 and the web portal server 318 may be embodied as any computing device or plurality of computing devices in a variety of computer system architectures, including those which are not client-server architectures. Further, as used herein, a “user's context,” or “context,” which may be used interchangeably, refer to, for example, a user's location, a device from which the user has requested services or content, other individuals in the user's presence, a time of day, an event, a date, or other information that defines the environment, surroundings, or setting of the user. “Content” and “services” may be used interchangeably herein, and collectively refer to, for example, photographs and other image content, video content, music or other audio content, television/radio broad/multi/unicasting or streaming, video games, news feeds and content, blogs, web pages, maps, advertisements, vendor offers such as may be provided by an online retailer, search results such as may be returned by a search engine in response to a user search, as well as social networking content and services, any combination of the aforementioned, or any other information or material provided to or requested by the user. Although referred to as a web service provider 328, the web service provider 328 is not limited to embodiments operable on the Internet. It will be appreciated that the web service provider 328, as well as embodiments of the invention may be configured to be operable on other networks, including intranets, wide area networks, and the like and may communicate using any of a number of network protocols.

The mobile device 302 may include a processor 304, which may be a controller 20 of a mobile terminal 10, as well as a context monitoring unit 306. The context monitoring unit 306 may be embodied as hardware, software, or a combination thereof and may be embodied as or otherwise executed by the processor 304. In this regard, the context monitoring unit 306 may be configured to monitor the context of the user. The context monitoring unit 306 may monitor the current location of the mobile device 302, which may be determined, for example, based upon a position determined by the positioning sensor 36 of a mobile terminal 10. In this regard, the current location of the mobile device 302 may be assumed to be the location of the user of the mobile device 302 in determining the user's context. The context monitoring unit 306 may further be configured to monitor other devices in close proximity to the mobile device 302. In this regard, each user of the system 300 or even other devices communicating over a larger network, such as the network of the system of FIG. 2 may be uniquely identifiable and associated with a user. Accordingly, the context monitoring unit 306 may detect devices in close proximity to the mobile device 302 using various near-field communication technologies, such as, for example, RF (such as via RF transceiver 64 of a mobile terminal 10), IR (such as via IR transceiver 66 of a mobile terminal 10), Bluetooth (such as via BT transceiver 68 of a mobile terminal 10), as well as other near-field technologies and wireless networking protocols. In some embodiments, the context monitoring unit 306 may be configured to directly monitor individuals in proximity to the mobile device 302, even if one or more individuals are not in possession of a device or if device(s) possessed by one or more individuals are not recognized by the context monitoring unit 306, through the use of voice recognition. In this regard, the context monitoring unit 306 may monitor and/or determine individuals such as coworkers and family members in close proximity to the mobile device 302 based upon unique device identifiers of proximate devices which are associated with other users or based upon known voice signatures of individuals.

In addition to location detection through the use of the positioning sensor 36 and proximity sensing, the context monitoring unit 306 may determine further user context information through the use of various environmental sensors. These environmental sensors may be embodied internally to the mobile device 302 or additionally or alternatively, may be embodied externally to and communicate with the mobile device 302. Environmental sensors may monitor and report a variety of information to the context monitoring unit 306, such as for example, ambient air temperature surrounding the mobile device 302, direction of motion of the mobile device 302, rate of motion of the mobile device 302, etc.

The context monitoring unit 306 may further be configured to determine other user context information from applications or devices, which may be executed by or otherwise embodied on the processor 304 or may be executed by or embodied on remote devices which may be in communication with the context monitoring unit 306. For example, the context monitoring unit 306 may determine a current time or date from a clock application which may be embodied on the mobile device 302 or on a remote device such as any of the devices of the system of FIG. 2. The context monitoring unit 306 may additionally, for example, determine whether the user currently has a scheduled appointment or other event, which the user may have entered into a calendar or other scheduling management program, which may be embodied on the mobile device 302 or a remote device such as any of the devices of the system of FIG. 2. In this regard, the context monitoring unit 306 may determine a user's context through any information about a current event, information about the user, or information about one or more active applications on a device associated with the user, which is stored or may otherwise be obtained from an application or device in communication with the context monitoring unit 306 as well as current status information related to the mobile device 302 itself.

The context monitoring unit 306 may further be configured to communicate current user context information to a remote device, such as the presence server 310, over a communication link, such as the communication link 308, which may be a communication link in accordance with any of those illustrated and described in connection with the system of FIG. 2. In some embodiments, the context monitoring unit 306 may communicate current context information to or otherwise “sync” current context information with a second device associated with the user, such as a web terminal 332. In such embodiments, this second device associated with the user may then communicate context information to the presence server 310. In this regard, in an exemplary embodiment, the context monitoring unit 306 may be configured to communicate current user context information to a remote device at regular intervals. In addition or alternatively, the context monitoring unit 306 may be configured to communicate current user context information to a remote device at the request of the remote device, such as at the request of the presence server 310, web portal server 318, or web service provider 328. In some embodiments, the context monitoring unit 306 may additionally or alternatively communicate current user context information to a remote device in response to a change in context information and/or in response to a command of the user, which may be entered over a user interface of the mobile device 302, such as via the keypad 30 of a mobile terminal 10.

The presence server 310 may include a processor 312 and a user context database 314. The processor 312 may be a single processor or may comprise multiple processors executed in parallel, which may be contained in a single computing device or may be distributed among multiple computing devices, such as in a server cluster. The user context database 314 may be stored on or otherwise embodied as a memory component, which may be embodied in the presence server 310, a remote device, or in a plurality of devices in communication with the presence server 310. The user context database 314 may be configured to store user context information for a plurality of users in association with an identifier indicative of the respective user with whom each set of user context information is associated. In this regard, the user context database 314 may be configured to receive and/or request scheduled and/or unscheduled updates of user context information from the context monitoring unit 306 via the communication link 308 and store received context information in association with the user from whose mobile device 302 the context information was received. The user context database 314 may further be configured to periodically and/or on request transmit stored user context information to another component or device, such as the content filtering unit 320 of a web portal server 318 over the communication link 316. The communication link 316 may be any of the communication links described in connection with the system of FIG. 2. In this regard, the receipt, storage, and transmission of user context information by the user context database 314 may be controlled by the processor 312.

Although not illustrated in FIG. 3, in some embodiments the presence server 310 may be embodied in a network access point 62 or gateway 48. In such embodiments the presence server 310 may communicate directly with the web terminal 332, such as over communication link 330, as well as with the mobile device 302 over communication link 308 and the web portal server 318 over communication link 316.

Although illustrated in accordance with one embodiment in FIG. 3 as separate computing devices, the presence server 310 and web portal server 318 may be embodied on a single computing device. The web portal server 318 may include a content filtering unit 320, memory 322, and a processor 324. The processor 324 may be a single processor or may comprise multiple processors executed in parallel, which may be contained in a single computing device or may be distributed among multiple computing devices, such as in a server cluster. The content filtering unit 320 may be embodied as software, hardware, or a combination thereof and may be controlled by or otherwise embodied as the processor 324. The content filtering unit 320 may be configured to receive a request for a service or content from a remote device, such as the web terminal 332 and to filter the requested service or content and provide the filtered content to the web terminal 332, such as over the communication link 330. In this regard, the web portal server 318 may be, for example, a computing device, system of computing devices, or a service provider providing any of several commonly known web portal or search services to computing device users. Examples of these web portal services include search services, such as those provided by OVI® and GOOGLE®, photo hosting services such as FLICKR™, social networking providers such as FACEBOOK™, a gaming server, or a multimedia content server. The content filtering unit 320 may be configured to retrieve unfiltered requested services or content from a web service provider 328, such as over a communication link 326. According to one embodiment illustrated in FIG. 3, the web portal server 318 may be a gateway computing device wherein a user of a web terminal 332 may log in and retrieve services or content from a plurality of web service providers 328. In alternative embodiments, however, the web portal server 318 and web service provider 328 may be embodied on a single computing device and the requested service or content may be stored or otherwise be embodied local to the content filtering unit 320. Furthermore, in some alternative embodiments, the presence server 310, web portal server 318, and web service provider 328 may be embodied as a single device, system, or service provider.

Further, although not illustrated herein, the web portal server 318 may merely serve as a communication intermediary, such as a network access point 62 or gateway 48, between the web terminal 332 and the web service provider 328 and the actual filtering of content and services may occur on the web service provider 328. In such embodiments, the content filtering unit 320 may be embodied on the web service provider 328. Alternatively, the content filtering unit 320 may be also embodied in the network access point 62 or the gateway 48.

The content filtering unit 320 may be configured to filter services or content requested by a requesting user of a web terminal 332 based upon the requesting user's context information in accordance with the requesting user's one or more user-defined filtering criteria, which may be stored in memory 322. In this regard, the content filtering unit 320 may request from the user context database 314 the context information of the requesting user. Although not illustrated in FIG. 3, in alternative embodiments, the content filtering unit 320 may additionally or alternatively request current context information for a requesting user directly from a mobile device 302 associated with the requesting user. In addition to the context information received from the user context database 314 or directly from the context monitoring unit 306 of a mobile device 302, the content filtering unit 320 may receive additional context information from the web terminal 332, which may be combined with context information received from the user context database 314 or context monitoring unit 306. This additional context information may include, for example, an indication uniquely identifying the web terminal 332 or the user of the web terminal 332 so that further filtering may be performed based upon an identity or characteristic of the user or the web terminal 332 from which the requesting user is requesting services or content. In this regard, the web terminal 332 may be any computing device with network connectivity and an indication identifying the web terminal 332 may be, for example, an IP address.

The content filtering unit 320 may retrieve appropriate user-defined filtering criteria from the memory 322. In this regard, the memory 322 may store multiple sets of filtering criteria in association with a user. Each set of filtering criteria (i.e. a filtering profile) for a user may be associated with a particular context of the user, such as a location from which the user is requesting services or content, and/or with the type of service or content that the user is requesting. Thus the content filtering unit 320 may be configured to determine and retrieve an appropriate set of filtering criteria for the requesting user based upon the user's context, the requested service or content, as well as any other predefined factors.

The content filtering unit 320 may be configured to filter services or content using the content filtering criteria based upon metadata information, i.e., meta tags, or other identifiers associated with the services or content. For example content or media, such as photograph content, may be tagged with meta tags or other associated identifiers indicating individuals or objects present in the content or media, locations at which the content or media were taken or created, topic of the content or media, related locations or topics, and/or social context (such as personal, work, friends, family, or secret). Social networking contacts may be tagged with indications of a relationship to the user, such as coworker, friend, or family. Content or media, such as video, photographs, audio, gaming, and web page content and services may be rated according to a content ratings standards. For example, video content may be rated by the Motion Pictures Association of America (MPAA); web pages and other internet content may be rated by the Internet Content Rating Association (ICRA); gaming content and services may be rated by the Entertainment Software Ratings Board (ESRB); and music content may be rated in accordance with standards of the Recording Industry Association of America (RIAA). In this regard, a user may define filtering criteria such that the content filtering unit 320 may filter out content or services in certain contexts which have been rated inappropriate for certain age groups by a third party content standards ratings group.

Accordingly, a user may register with the web portal server 318 and predefine a number of sets of filtering criteria prior to requesting a service or content. Registration may be through the use of a mobile device 302 or any other computing device, such as a web terminal 332. A user may define an address or other indication of a device from which his context information may be retrieved by the content filtering unit 320. This indication may thus define an address of a presence server 310 or an address of the mobile device 302. In this regard, in embodiments in which the content filtering unit 320 retrieves user context information directly from a mobile device 302 and wherein a user registers with the web portal server 318 using a mobile device 302, a component of the web portal server 318 may be configured to automatically associate an address or other identifier of the mobile device 302 with the user for the purpose of future context information retrieval. In defining the various sets of filtering criteria, the web portal server 318 may be configured to present a user with a number of filtering options via a user interface. For example, for location-based filtering criteria, a user may be provided with the option to assign a designated location and set of filtering criteria with the current position of his mobile device 302. Additionally or alternatively, a user may be presented with a map or other visual means to select a plurality of locations with which he desires to associate sets of filtering criteria. The user may also associate filtering criteria with identifiers of devices associated with other users, such as phone numbers of mobile devices associated with friends, coworkers, and family, such that the filtering criteria is employed when the user is in proximity to the devices of the other user.

After registering with the web portal server 318, a user may log onto the web portal server 318, such as by entering a login ID, such as a unique user name and password combination, prior to requesting a service or content. Additionally or alternatively, the web portal server 318 may be configured to recognize a requesting user without requiring a prior logon. For example, the web portal server 318 may recognize a requesting user based upon the identity of a web terminal 332,such as may be determined by IP address recognition of the user device, used by the requesting user to make a request. Additionally or alternatively, the web portal server 318 may recognize a requesting user based upon an identifier, such as a web browser cookie, stored remotely on the web terminal 332 and provided by an application executed on the web terminal 332 and used by the requesting user to make a request.

The web terminal 332, or other user terminal, may include a processor 336 and an application interface 334. The web terminal 332 may be a stationary or mobile device like a personal computer, laptop computer, a mobile computer, a mobile communication device, a mobile phone, a television, a radio, a set-top box (STB), a game console, a digital video recorder (DVR), an audio/video player, a still/video camera, or any combination of the aforementioned. Although depicted in FIG. 3 as separate devices, in some embodiments the web terminal 332 and mobile device 302 may be embodied as the same device, which may communicate context information to the user context database 314 of the presence server 310 and may communicate service requests to and receive filtered content from the content filtering unit 320 of the web portal server 318.

The application interface 334 may be defined by computer program instructions that are executed on or otherwise controlled by the processor 336. The application interface 334 may be any application or user interface used to access content or services over a network, such as that of the system 300. In this regard, the application interface 334 may be configured to access multiple services and forms of content in accordance with embodiments of the invention, or a web terminal 332 may include a plurality of application interfaces 334, each of which is configured for a particular service or content. As such, an application interface 334 may be, for example, a web browser, a media/video/audio player, gaming application, a news reader, or other common software used to access and facilitate user interaction with requested services and content. Accordingly the application interface 334 may be configured to provide a user interface to a user and in response to a user request, transmit a request for a service or content over communication link 330 to the content filtering unit 320. The transmitted request may also include an identifier indicating the requesting user, such as a login request, login ID, cookie, or other user identification means, so that the content filtering unit 320 may filter the requested services or content accordingly. The application interface 334 may further be configured to receive filtered services or content and subsequently display, playback, or otherwise facilitate the execution of or interaction with the received filtered service or content.

FIGS. 4 and 5 are flowcharts of a system, method, and computer program product according to an exemplary embodiment of the invention. It will be understood that each block or step of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware, firmware, and/or software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by a memory device of a mobile terminal or server and executed by a built-in processor in a mobile terminal or server. As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (i.e., hardware) to produce a machine, such that the instructions which execute on the computer or other programmable apparatus create means for implementing the functions specified in the flowchart block(s) or step(s). These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart block(s) or step(s). The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block(s) or step(s).

Accordingly, blocks or steps of the flowcharts support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that one or more blocks or steps of the flowcharts, and combinations of blocks or steps in the flowchart, may be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.

In this regard, one embodiment of a method for receiving a user registration request and context-based filtering criteria as illustrated in FIG. 4 may include the web portal server receiving a user registration request at operation 410. This user registration request may optionally comprise receiving a login ID, such as a user name and password, for the registering user. The web portal server may then optionally receive a definition of the user's presence server or mobile terminal address at operation 420. This definition may comprise any indication of a device from which the user's mobile context information may be retrieved, wherein the indication allows for recognition of and communication with in accordance with any appropriate networking protocol. In this regard, the definition may be, for example, an IP address, URL, or phone number uniquely identifying the device on a network. Operation 430 may then comprise receiving one or more sets of context-based filtering criteria. The received information may then be stored in memory 322 in association with the registering user at operation 440.

FIG. 5 illustrates one embodiment of a method for providing filtered services or content based on user context. The method may optionally include receiving a user login request from a first device at operation 510. In this regard, a user login request may include an indication of a device identity that may be associated with a user, such as an IP address or IMEI code, or browser cookies, as well as a login identifier, such as a user name and optional password. The content filtering unit 320 may then receive a request for a service or content from the first device, such as the web terminal 332, at operation 520. Operation 530 may comprise receiving the user's context information from a second device, such as from the presence server 310 or the mobile device 302. Accordingly, the second device is separate from the first device. It will be appreciated that as used herein, “separate from” merely means not the exact same physical device, but does not carry any broader implication with regard to a type of device or location of a device. Operation 540 may optionally comprise receiving the requested service or content from a web service provider 328. This operation may not be necessary in embodiments wherein the functionalities of the web portal server 318 and the web service provider 328 are embodied on a single computing device. The content filtering unit 320 may then retrieve stored filtering criteria associated with the user from memory 322 at operation 550. Operation 560 may then comprise the content filtering unit 320 filtering the requested service or content. The content filtering unit 320 may then provide the filtered service or content to the first device, such as the web terminal 332 at operation 570.

The above described functions may be carried out in many ways. For example, any suitable means for carrying out each of the functions described above may be employed to carry out embodiments of the invention. In one embodiment, all or a portion of the elements generally operate under control of a computer program product. The computer program product for performing the methods of embodiments of the invention includes a computer-readable storage medium, such as the non-volatile storage medium, and computer-readable program code portions, such as a series of computer instructions, embodied in the computer-readable storage medium.

As such, then, some embodiments of the invention may provide several advantages to a user using a computing device to access content and services. For example, a user may wish to have requested content and services filtered depending on his current context. By providing the user with a system according to embodiments of the invention for automatically filtering content and services based upon the user's context as monitored in part by a mobile device associated with the user, the user may be provided with an enhanced experience when accessing content and services over a network. In this regard, embodiments of the system may facilitate a user receiving content and services filtered according to user-defined parameters regardless of the device used to access the content and services without having to configure each individual access device. Additionally embodiments of the invention may facilitate the filtering of any content or service without necessitating each individual content or service used by a user to be configured according to user filtering preferences.

Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the embodiments of the invention are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe exemplary embodiments in the context of certain exemplary combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation. 

What is claimed is:
 1. A method comprising: receiving a request for a service, the request being originated by a first device, wherein the request is associated with a user; causing, responsive to the received request for the service, a request for the user's context information to be sent to a second device, wherein the second device is one or more mobile terminals associated with the user and are separate from the first device; receiving the user's context information from the second device; filtering the requested service based at least in part upon the user's context information; and causing the filtered service to be provided to the first device.
 2. A method according to claim 1, further comprising: receiving a login request in conjunction with an indication of the user's identification, wherein the user's identification is associated with the second device; and causing a request for the user's context information to be sent to the second device based upon the association of the second device with the user's identification.
 3. A method according to claim 1, wherein filtering the requested service further comprises filtering the requested service based at least in part upon at least one of an identity of the first device or one or more filtering criteria associated with the requested service.
 4. A method according to claim 3, wherein the one or more filtering criteria comprise metadata information associated with the requested service, contexts associated with the requested service, content ratings standards applied to the requested service, or user-defined parameters associated with the requested service.
 5. A method according to claim 1, wherein filtering the requested service based at least in part upon the user's context information comprises: requesting the requested service from a web service provider; receiving the requested service from the web service provider; and filtering the received requested service based at least in part upon the user's context information.
 6. A method according to claim 1, wherein the user's context information comprises an identity of a third device proximate to the first device.
 7. A computer program product comprising at least one computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising: a program code portion configured to cause receipt of a request, the request being originated by a first device, wherein the request is associated with a user; a program code portion configured, responsive to the received request for the service, to cause a request for the user's context information to be sent to a second device, wherein the second device is one or more mobile terminals associated with the user and are separate from the first device a program code portion configured to cause receipt of the user's context information from the second device; a program code portion configured to filter the requested service based at least in part upon the user's context information; and a program code portion configured to cause the filtered service to be provided to the first device.
 8. A computer program product according to claim 7, further comprising: a portion configured to cause receipt of a login request in conjunction with an indication of the user's identification, wherein the user's identification is associated with the second device; and wherein the program code portion configured to cause the request for the user's context information to be sent to the second device comprises instructions configured to cause the request for the user's context information to be sent to the second device based upon the association of the second device with the user's identification.
 9. A computer program product according to claim 7, wherein the program code portion configured to filter the requested service includes instructions configured to filter the requested service based upon at least one of an identity of the first device or one or more filtering criteria associated with the requested service.
 10. A computer program product according to claim 7, wherein the program code portion configured to filter the requested service includes instructions configured to: cause requesting of the requested service from a web service provider; cause receipt of the requested service from the web service provider; and filter the received requested service based at least in part upon the user's context information.
 11. An apparatus comprising at least one processor and at least one memory storing computer program code, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to cause the apparatus to at least: receive a request for a service, the request being originated by a first device, wherein the request is associated with a user; cause, responsive to the received request for the service, a request for the user's context information to be sent to a second device, wherein the second device is one or more mobile terminals associated with the user and are separate from the first device; receive the user's context information from the second device; filter the requested service based at least in part upon the user's context information; and cause the filtered service to be provided to the first device.
 12. An apparatus according to claim 11, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to further cause the apparatus to: receive a login request in conjunction with an indication of the user's identification, wherein the user's identification is associated with the second device; and cause the request for the user's context information to the second device based upon the association of the second device with the user's identification.
 13. An apparatus according to claim 11, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to cause the apparatus to filter the requested service based upon at least one of an identity of the first device or one or more filtering criteria associated with the requested service.
 14. An apparatus according to claim 13, wherein the one or more filtering criteria comprise metadata information associated with the requested service, contexts associated with the requested service, content ratings standards applied to the requested service, or user-defined parameters associated with the requested service.
 15. An apparatus according to claim 11, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to further cause the apparatus to: cause the requested service to be requested from a web service provider; receive the requested service from the web service provider; and filter the requested service by filtering the received requested service based at least in part upon the user's context information.
 16. An apparatus comprising: means for receiving a request for a service, the request being originated by a first device, wherein the request is associated with a user; means for causing, responsive to the received request for the service, a request for the user's context information to be sent to a second device, wherein the second device is one or more mobile terminals associated with the user and are separate from the first device; means for receiving the user's context information from the second device; means for filtering the requested service based at least in part upon the user's context information; and means for causing the filtered service to be provided to the first device.
 17. A method according to claim 1, wherein filtering the requested service comprises filtering the requested service by a processor.
 18. A method according to claim 1, further comprising: determining a predefined filtering criteria set based at least in part on the context information; and wherein filtering the requested service comprises filtering the requested service based at least in part on the determined filtering criteria set.
 19. A method according to claim 1, further comprising receiving, at a portal, a user login request for logging into the portal; and wherein: receiving a request for a service comprises receiving a request for a service at the portal; receiving the user's context information comprises receiving the user's context information at the portal; and filtering the requested service comprises filtering the requested service at the portal.
 20. A method according to claim 1, wherein filtering the requested service comprises filtering the requested service at least in part by comparing the received context information with metadata associated with the requested service.
 21. A method according to claim 6, wherein the context information further comprises one or more of a location of the first device, a current time, an appointment in a calendar application, or an entry in a calendar application. 